Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]=>[JavaScript]Google translate tu nie zadziała ...
phpamator
post
Post #1





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Hejka,
To znowu ja, wasz upierdliwy amator.
Dość długo nic nie pisałem, nadszedł jednak ten .... dzień że muszę zapytać. Kopałem trochę po sieci ale nie bardzo wykopałem co chciałem.
potrzebuję zrobić coś po stronie klienta w js i z czym nie do końca mogę sobie poradzić za to po stronie servera poradziłem sobie bez problemu.
  1. // funkcja w php
  2.  
  3. private function getImgproxy($link,$width,$height,$pafka){
  4. // key & salt
  5. $key = 'mój klucz kodowania';
  6. $salt = 'mój salt';
  7. $vpsLink = base64_encode('https://imgprocessor.com/');
  8. // key compression
  9. $keyBin = pack("H*" , $key);
  10. if(empty($keyBin)) {
  11. die('Key expected to be hex-encoded string');
  12. }
  13.  
  14. // key compression
  15. $saltBin = pack("H*" , $salt);
  16. if(empty($saltBin)) {
  17. die('Salt expected to be hex-encoded string');
  18. }
  19.  
  20. $resize = 'fit';
  21. $gravity = 'no';
  22. $enlarge = 0;
  23. $extension = 'png';
  24. $url = $link;
  25.  
  26. // processing
  27. $encodedUrl = rtrim(strtr(base64_encode($url), '+/', '-_'), '=');
  28. $path = sprintf("/%s/%d/%d/%s/%d/%s.%s", $resize, $width, $height, $gravity, $enlarge, $encodedUrl, $extension);
  29. $signature = rtrim(strtr(base64_encode(hash_hmac('sha256', $saltBin.$path, $keyBin, true)), '+/', '-_'), '=');
  30. $go = $signature.$path;
  31.  
  32. return base64_decode($vpsLink).$go;
  33. }

teraz chciałem to samo zrobić po stronie klienta w związku z czym zrobiłem:
  1. function imgProxy (data) {
  2. var key = 'mój klucz kodowania';
  3. var salt = 'mój salt';
  4. var vpsLink = encodedString('https://imgprocessor.com/');
  5. // nie wiem jak się zabrać za to poniżej ...
  6. var keyBin = ... pack("H*" , klucz);...
  7. if(!!keyBin) {console.log('Key expected to be hex-encoded string');}
  8. var saltBin = ... pack("H*" , salt);...
  9. if(!!saltBin) {console.log('Salt expected to be hex-encoded string');}
  10.  
  11. for (i = 0; i < data.response.product_data.length; i++) {
  12. var resize = 'fit';
  13. var gravity = 'no';
  14. var enlarge = 0;
  15. var extension = 'png';
  16. var url = $link;
  17. var product = data.response.product_data[i];
  18. product['image'] = null;
  19. console.log(product['image']);
  20. // i tu będzie reszta czyli zbudowany url - też jeszcze nie wiem do końca ale pracuję nad tym - gdyby ktoś mi podpowiedział jak dokonać "pack'a" ?
  21. }
  22. }


Ten post edytował phpamator 19.12.2017, 15:50:55
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Zacznij od tego że publiczne udostępnienie soli i klucza w js to głupota.
Go to the top of the page
+Quote Post
phpamator
post
Post #3





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Prawda Vikingu, to kolejna rzecz do zrobienia. Zdaję sobie sprawę z tego (IMG:style_emoticons/default/smile.gif)
będzie to rozwiązane ... jakoś ... ajax

Ten post edytował phpamator 19.12.2017, 16:06:21
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a jak ajax niby to rozwiaze? Ze niby ajax ci zwroci ten sol i klucz? Toz to nadal bedzie publiczne wowczas.
Go to the top of the page
+Quote Post
phpamator
post
Post #5





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Co sugerujesz nospor, jakie rozwiązanie ?
Co mogę z tym zrobić żeby klucz i salt nie były publiczne ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




skoro zamierzales slac ajax tak czy siak, to czemu nie mozesz slac tego ajax i w php jak czlowiek tego zrobic a ajax zwroci ci rezult tylko tego wszystkiego?
Go to the top of the page
+Quote Post
phpamator
post
Post #7





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


spróbuję ale obawiam się, że spowoduje to spore opóźnienia ....
chociaż może nie będzie aż tak tragicznie, w każdym razie chciałem to zrobić po stronie klienta, nawet gdybym miał usunąć dodatkowe szyfrowanie czegokolwiek
ale wróćmy do początku bo mimo wszystko chciałbym wiedzieć jak to zrobić niezależnie czy to głupie czy nie i czy bezpieczne czy nie.
Chodzi mi bardziej o to jak to zrobić niż z tego korzystać a potem ewentualnie rozwiązywać inne problemy w tym bezpieczeństwa.



_______________________________________________________________________________

Na marginesie dodam, że spotkałem takich kilka "profesjonalnych" skyptów w których klucze dostępu
"specjaliści" umieścili jako zmienne w skrypcie i każdy mógł sobie użyć do wyszukiwarki adresów pocztowych (IMG:style_emoticons/default/smile.gif)
Tak więc amatorowi ... wybaczcie (IMG:style_emoticons/default/smile.gif)

Ten post edytował phpamator 19.12.2017, 18:02:03
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 02:16